Method and system for generating a data collection process in a user device

ABSTRACT

The invention relates to a computer implemented method and system for generating a data collection process for a user device. The method comprises: receiving, at a third-party server, an instruction to begin a data collection process for a user operating a user device; receiving, at the third-party server, static data from the user device; determining, at the third-party server, a set of data to be collected from the user; generating, at the third-party server, code for a first data collection module based on the set of data to be collected from the user; providing, from the third-party server, the code for generating the first data collection module to the user device; receiving, at the third-party server, confirmation that a user of the user device has provided the information required by the first data collection module to the service-provider server; and determining if the user has provided the set of data to be collected.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/689,808, filed Nov. 20, 2019. The disclosure of the above applicationis incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to a method and system for generating adata collection process in a user device. In particular, the inventionrelates to the generation of a data collection process which is adaptedto suit an individual and specific user and user device in order tosimplify data collection from such individual and specific user and userdevice.

BACKGROUND OF THE INVENTION

Many organizations with an online presence want to ask their users forsome personal information or other data. Many times, this datacollection is a required step to start using the product or serviceprovided. It is therefore desirable to simplify this step for the userin order to increase the number of users performing such steps, andthereby increasing the use of the product, service or similar that isbeing offered.

Online methods of data collection and customer registration/sign ups onweb sites and the like have more or less had the same look and feelduring numerous years. Through existing methods, individuals and usersare requested to use standardized and static online forms to manuallyfill in data or manually verify certain pre-populated data, mainlythrough the use of keyboards. Existing methods of data collection areoften standardized, not taking individual user parameters and/or userdevice information into account.

An important metric for web site operators and other parties using anonline registration or data collection process is user conversion, oruser conversion rate, which defines the number or percentage of usersinitiating a data collection process that proceeds to complete theprocess. In order to improve user conversion, tools such as an autofillfunctionality and other means for automatically gathering userinformation can be employed. However, many existing data collectionprocedures may still be seen as tedious and/or complicated, making thedata collection process an obstacle for the user.

Accordingly, it is desirable to further simplify the registration/datacollection process on e.g. web sites in order to increase userconversion.

SUMMARY

In view of the above-mentioned and other drawbacks of already existingart, an object of the present invention is to provide an improved methodand system for simplifying the data collection process for a user whensuch user is required to provide information, e.g. when signing up forservices or when sharing data on a website. This is achieved by anautomated and interactive method and system for generating an optimized(i) method and manner to collect the required data from an individualuser, and (ii) data collection sequence in such user device.

According to a first aspect of the invention, a computer implementedmethod for generating a data collection process is provided, includingboth the sequence and manner in which the data is collected in a userdevice. The method comprises: receiving, at a third-party server havingat least one processor, an instruction to begin a data collectionprocess for a user operating a user device, the instruction being sentfrom a service-provider server requesting data from a user; receiving,at the third-party server, static data from the user device;determining, at the third-party server, a set of data to be collectedfrom the user, the set of data comprising at least one data item;generating, at the third-party server, code for a first data collectionmodule based on the set of data to be collected from the user, the firstdata collection module being configured to collect at least one dataitem from the set of data to be collected from the user; providing, fromthe third-party server, the code for generating the first datacollection module to the user device; receiving, at the third-partyserver, confirmation that a user of the user device has provided theinformation required by the first data collection module to theservice-provider server; and determining, in the third-party server,based on the received confirmation, if the user has provided the set ofdata to be collected from the user to the service-provider server. Inthe event further data is to be collected, the method further comprisesrepeating the above process albeit with subsequent data collectionmodule(s) being based on collected static data, collected dynamic dataand the set of data already collected from the user.

In the present context, a service provider may be considered to includeany online service provider providing a service which requires activelycollecting data from a user. The service provider may for example be apayment service provider, an insurance provider, a gambling serviceprovider, a bank, an authority or any other online service provider.Moreover, the data collection process may be part of a sign-up orregistration process such as the creation of a user account, or it maybe used for gathering user information for other purposes.

The user device can be any electronic device which can be used to accessthe service-provider server for example via a web site hosted by theservice provider server. The user device may for example be a stationarycomputer, a laptop, a tablet computer, a smartphone, a smartwatch orother types of user terminals capable of connecting the service-providerserver and generating content based on code provided by theservice-provider server. Preferably, the user device is capable ofgenerating a web page based on code provided by the service-providerserver, such as html code or similar. Moreover, the user device is anydevice which is configured to be used by a user in order to provideinformation in some form. Accordingly, an interaction with the userdevice, by the user, is required for providing information to theservice-provider server. In other words, the generated data collectionprocess includes prompting a user to interact with the user device,meaning that the user device is equipped with some form of userinterface comprising both output and input means. The user device mayfor example be provided with output means such as a display, a speakeror haptic technology, and with input means such as a touch sensitivedisplay, a keyboard, a joystick, a microphone, a camera, motion sensorsand the like. The user device may thus be equipped with a graphical userinterface, an audio user interface, and/or a haptic user interface.

The third-party server, which may comprise one or more processors anddata storage units, is responsible for generating the code resulting ina data collection process where at least one data item is provided bythe user via the user device and transmitted on to the service-providerserver. The data collection process includes generating code forindividually adapted data collection modules to be presented on orotherwise executed by the user device. Accordingly, the functionality ofthe third-party server, which may be collectively referred to as a datacollection framework, generates code corresponding to a data collectionmodule most suitable for the individual user and user device, whereinthe code in turn is transmitted to the user device. When the code isexecuted on the user device, a data collection module specificallytargeting the individual user is generated on the user device andpresented to the user by means of any of the aforementioned interfaces.

The present invention is based on the realization that the userexperience of a data collection process can be significantly improved byadapting the process based on information available on the user device(static data) which is used to perform the data collection, based on theuser interactions and input behavioral patterns (dynamic data), andbased on data already collected from the user so that the datacollection process can be optimized based on the specific circumstancesof a given user and user device. The described data collection processincluding the generation of code for data collection modules to bepresented to the user is thereby based on input parameters such as timeof day, what type of data to collect, statistical analysis of behavioralpatterns of users and historical success rates of certain registrationmodules. By improving the user experience, the user conversion rate isalso increased, i.e. the likelihood that the user completes the datacollection process.

The described third-party server can furthermore in principle beseamlessly inserted in the communication between the user device and theservice-provider server and can be branded so that the use of thethird-party server for optimizing the data collection process may beinvisible to the user. However, no personal data needs to be stored onthe third-party server, even though the third-party server isresponsible for managing the data collection process. Thereby, privacyconcerns and other legal requirements relating to handling of personaland identifying data does not primarily have to be addressed by theoperator of the third-party server. It should be noted that it would inprinciple be possible to store user data on the third-party server,either temporarily or permanently, should that be desirable.

A further advantage of the claimed invention it that there is no needfor the service-provider to substantially modify the internal workingsof its systems for improving an existing data collection process.Instead, the service-provider can adopt the data collection frameworkprovided by the third-party server e.g. by inserting a script or codesnippet on a service-provider web page which calls the third-partyserver and initiates the data collection process when a user accessesthe information gathering part of the service-provider web site.

Moreover, for a data collection process requiring a number of data itemsto be collected, the data collection process may result in a sequenceand design of data collection modules, where the resulting sequence anddesign are determined by the data collection framework on thethird-party server. Here, it should be noted that the sequence of dataitems to be collected as such is not predetermined. Instead, for eachdata item to be collected the most suitable data collection module isselected and generated, meaning that for a given set of data to becollected, the specific sequence or way of collecting the data items maybe different for different users and user devices.

The third-party server, as well as the service-provider server, may beimplemented in a cloud computing environment. The functionality of thethird-party server may thereby be distributed across several differentlocations and physical systems.

According to a second aspect of the invention, there is provided asystem for generating a data collection process in a user device. Thesystem comprises: a third-party server having at least one processor,the processor of the third-party server being configured to: receive aninstruction to begin a data collection process for a user operating auser device, the instruction being sent from a service provider serverrequesting data to be collected from a user; receive static data fromthe user device; initiate a data collection sequence generator uponreceipt of the instruction to begin a data collection process; determinea set of data set to be collected from the user; generate code for afirst data collection module based on the set of data to be collectedfrom the user, the first data collection module being configured torequest at least one data item from the set of data to be collected fromthe user; provide the code for generating the first data collectionmodule to the user device; receive confirmation that a user of the userdevice has provided the information required by the first datacollection module to the service-provider server; and determine, basedon the received confirmation, if the user has provided the set of datato be collected from the user to the service provider server.

According to a third aspect of the invention, there is provided a systemfor generating a data collection process in a user device. The systemcomprises: a third-party server having at least one processor; a userdevice having at least one processor; and a service-provider serverhaving at least one processor; the system being configured to: by thethird-party server, receive an instruction to begin a data collectionprocess for a user operating a user device, the instruction being sentfrom the service provider server requesting data from a user; providestatic data from the user device to the third-party server; by thethird-party server, initiate a data collection sequence generator uponreceipt of the instruction to begin a data collection process from thethird party-server; by the third-party server, determine a set of dataset to be collected from the user; by the third-party server, generatecode for a first data collection module based on the set of data to becollected from the user, the first data collection module beingconfigured to collect at least one data item from the set of data to becollected from the user; by the third-party server, provide the code forgenerating the first data collection module to the user device; by theuser device, generating the first data collection module and promptingthe user to provide information by interacting with the data collectionmodule; by the user device, provide the information acquired by thefirst data collection module to the service provider server; by thethird-party server, receive confirmation that a user of the user devicehas provided the information required by the first data collectionmodule to the service-provider server; and by the third-party server,determine, based on the received confirmation, if the user has providedthe set of data to be collected from the user to the service providerserver.

Additional effects and features of the second and third aspects of theinvention are largely analogous to those described above in connectionwith the first aspect of the invention.

Further features of, and advantages with, the present invention willbecome apparent when studying the appended claims and the followingdescription. The skilled person realizes that different features of thepresent invention may be combined to create embodiments other than thosedescribed in the following, without departing from the scope of thepresent invention.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other aspects of the present invention will now be describedin more detail, with reference to the appended drawings showing anexample embodiment of the invention, wherein:

FIG. 1 schematically illustrates a system for generating a datacollection process in a user device according to an embodiment of theinvention;

FIG. 2 is a flow chart outlining general steps of a computer implementedmethod for generating a data collection process in a user deviceaccording to an embodiment of the invention;

FIGS. 3A-D schematically illustrate steps of a method according to anembodiment of the invention; and

FIG. 4 is a flow chart outlining further steps of a computer implementedmethod for generating a data collection process in a user deviceaccording to an embodiment of the invention.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

The present invention will now be described more fully hereinafter withreference to the accompanying drawings, in which currently preferredembodiments of the invention are shown. This invention may, however, beembodied in many different forms and should not be construed as limitedto the embodiments set forth herein; rather, these embodiments areprovided for thoroughness and completeness, and convey examples of thescope of the invention to the skilled person. Like reference charactersrefer to like elements throughout.

In the present detailed description, various embodiments of the systemand method according to the present invention are mainly described withreference to a data collection process where a user visits aservice-provider web site by means of a user device such as asmartphone, and where the service provider requires a number of dataitems to be provided for completing the collection of data from theuser. However, the skilled person readily realizes that the describeddata collection process is applicable for a range of differentapplications.

FIG. 1 is a schematic illustration of a system for generating a datacollection process 100 comprising a third-party server 102 having atleast one processor, a user device 104 having at least one processor;and a service-provider server 106 having at least one processor.

The functionality of the described components is governed by softwarealgorithms executed on the respective processors. Preferably, thesoftware algorithm is implemented as coded instructions stored in amemory and executed by the processor. The processor is a hardware devicefor executing such coded instructions. The processor can be any custommade or commercially available processor, a central processing unit(CPU), an auxiliary processor among several processors associated withthe memory, a semiconductor-based microprocessor (in the form of amicrochip or chip set), or generally any device for executing codedinstructions. The processor is configured to execute software storedwithin the memory to communicate data to and from the memory, and togenerally control operations pursuant to the coded instructions. In anexemplary embodiment, the processor may include a mobile optimizedprocessor, such as one optimized for power consumption and mobileapplications. I/O interfaces can be used to receive user input and/orfor providing system output. User input can be provided via, forexample, a keypad, a touch screen, a scroll ball, a scroll bar, buttons,and/or the like. System output can be provided via a display device,such as a liquid crystal display (LCD), touch screen, and/or the like.The I/O interfaces can also include, for example, a serial port, aparallel port, a small computer system interface (SCSI), an infrared(IR) interface, a radio frequency (RF) interface, a universal serial bus(USB) interface, and/or the like. The I/O interfaces can include a GUIthat enables a user to interact with the memory. Additionally, the I/Ointerfaces may further include an imaging device, i.e. camera, videocamera, sensors, etc., as described herein.

Moreover, the described third-party server and service-provider servermay be implemented in a cloud computing environment where both dataprocessing and memory is distributed over a number of physical deviceswhich may be located at different geographical locations.

The memory may include any of volatile memory elements (e.g., randomaccess memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatilememory elements (e.g., ROM, hard drive, etc.), and combinations thereof.Moreover, the memory may incorporate electronic, magnetic, optical,and/or other types of storage media. Note that the memory may have adistributed architecture, where various components are situated remotelyfrom one another, but can be accessed by the processor. The software inthe memory can include one or more software programs, each of whichincludes an ordered listing of executable instructions for implementinglogical functions. The software in the memory includes a suitableoperating system (O/S) and programs. The operating system essentiallycontrols the execution of other computer programs, and providesscheduling, input-output control, file and data management, memorymanagement, and communication control and related services. The programsmay include various applications, add-ons, etc. configured to provideend user functionality. The programs can include an application or “app”which provides various functionalities.

FIG. 2 is a flow chart outlining the general steps of the computerimplemented method for generating a data collection process for a userdevice. Accordingly, the flow chart can be seen as an illustration ofthe algorithm being executed by the processor of the third-party server,i.e., the processor of the third-party server is programmed andconfigured to perform the described steps of the computer implementedmethod. The method will be described with further reference to FIGS.3A-D outlining the communication between the third-party server 102, theuser device 104 and the service-provider server 106 for selected stepsof the method.

The method first comprises the step of receiving 200, at the third-partyserver 102 having at least one processor, an instruction to begin a datacollection process for a user operating a user device 104, theinstruction being sent from a service-provider server 106 requestingdata to be collected from a user. In a non-limiting example, theservice-provider server 106 may for example be a server operated andcontrolled by a bank and the user may be an individual desiring tobecome a customer at the bank. The user may then access a web pagehosted by the service-provider server 106 where the user is required toprovide certain personal information for registering at the bank, andwhere a first step may be to create a user account. Once the user hasnavigated to the specific web page where a data collection process isrequired as schematically illustrated by FIG. 3A, the service-providerserver 106 transmits a request to the third-party server 102 indicatingthat a data collection process is to be initiated on the third-partyserver 102, illustrated by FIG. 3B.

The next step of the method comprises receiving 202, at the third-partyserver 102, static data from the user device 104. In the presentcontext, static data is non-personal data that defines the state of theuser device at the start of the data collection process, and which forexample may be retrieved from a memory unit of the user device 104.

The static data is in general data that does not change during the datacollection process, or at least not during a data collection session. Adata collection session can be seen as an uninterrupted data collectionprocess which is not aborted by either the user, the user device or bythe service-provider server. The static data received from the userdevice may comprise one or more of the following data items: Timestamp,Day of month, Month, Day of week, Hour of day, deviceType Seen before,userID, Device, Device version, Distance from latest device version,Browser, Browser Version, Distance from latest browser version OS, OSVersion, Distance from latest OS version, partnerId, screen resolution(multiplied), country, Language, Landscape orientation and Networklatency. Accordingly, certain data is static in the sense that it doesnot change at all during the data collection session, while some staticdata may change, such as timestamp, date and the like. According to anembodiment of the invention, static data is only collected at one pointin time, which is at the start at the data collection process. However,it would in principle be possible to update the static data at selectedtimes during the data collection process. The static data may forexample be retrieved from a local data storage of the user device 104where information corresponding to the above described static data isstored.

In practice, code for gathering static data on the user device 104 maybe embedded in the server-provider web page so that when the web page isgenerated on the user device 104, the code for gathering static data isexecuted on the user device 104, and static data is automaticallygathered on the user device 104 and transmitted to the third-partyserver 102. Accordingly, one embodiment of the described method maycomprise, at the third-party server 102, generating code for gatheringstatic data that when executed on the user device 104 gathers staticdata from the user device 104 and sends the gathered static data to thethird-party server 102.

In one embodiment of the invention, the method further comprises:receiving, at the user device 104, code from the service-provider server106; and executing the code on the user device 104, wherein the code isconfigured to make the user device 104 request code from the third-partyserver 102. Accordingly, the code which the user device 104 receivesfrom the service-provider server 106 for generating the service providerweb page may comprise additional code making the user device 104 callthe third-party server 102 requesting code for e.g. providing staticdata as illustrated in FIG. 3C. Thereby, the user device 104 is providedwith code enabling communication between the user device 104 and thethird-party server 102.

In the following step, a set of data to be collected from the user isdetermined 204 at the third-party server 102, the set of data comprisingat least one data item. The set of data to be collected is defined bythe one or more data items to be collected from the user.

The information describing a set of data to be collected from the usermay be predefined, and such information defining a set of data may bestored on a data storage unit of the third-party server 102 for a givenknown service-provider server 106. It would also be possible toretrieve, by the third-party server, information related to the set ofdata to be collected from the service-provider server 106. In otherwords, at the start of the data collection process, information definingthe data items to be collected may be transmitted from theservice-provider server 106 to the third-party server 102. Each dataitem defines a certain type of information about the user such as thename of the user, user address, user identifying number, phone number,email address and the like. Accordingly, a data item describes the typeof information to be requested from the user.

The next step of the method comprises generating 206, at the third-partyserver 102, code for a first data collection module based on the set ofdata to be collected from the user, the first data collection modulebeing configured to collect information defined by at least one dataitem from the set of data to be collected from the user.

The software on the third-party server 102 responsible for generatingthe code for the one or more data collection module(s) can be seen as adata collection framework which is initiated upon receipt of theinstruction to begin the data collection process. The software frameworkand functionality of the third-party server 102 may also be referred toas a data collection sequence generator. That the third-party server 102generates the data collection process should be understood as thethird-party server 102 being responsible for generating the coderequired for performing the data collection process on the user device104, and that the data collection process is controlled by thethird-party server 102.

The code for the first data collection module may further be based onstatic data so that the resulting data collection module is optimizedbased on the static data. Moreover, the first data collection module maybe selected from a library comprising module templates where, thetemplate (i.e. the method of data collection as well as the design ofthe module to be presented to the user) for collecting a certain dataitem can be adapted and optimized based on the static data. The libraryof data collection module templates may be stored locally on thethird-party server 102, or it may be stored at a remote locationaccessible by the third-party server 102.

Furthermore, the set of data items to be gathered can be seen as a listof data items, and the first data collection module can be selected tocollect one or more of the data items from the list of data items.Moreover, the data items do not have to be collected in any specific orpredetermined order.

Once the described code has been generated at the third-party server102, the method comprises providing 208, from the third-party server102, the code for generating the first data collection module to theuser device 104 as illustrated in FIG. 3C.

When the code for generating the first data collection module isexecuted on the user device 104, the user is presented with a datacollection module aiming to collect at least one data item from theuser. The data collection module is thus automatically generated by theuser device without any input from the user. In one embodiment of theinvention, the data collection module may include one or more inputfields prompting the user to provide information into the input fieldfollowed by a confirmation that the input is completed. However, thedata collection module may be manifested in many different ways as willbe described in further detail in the following.

According to one embodiment of the method, the data collection modulemay read information from a local data storage of the user device 104and present the information to the user for verification, for examplewhere an autofill-functionality of a web-browser of the user device isutilized for populating one or more fields of a data collection module.In the described example, the user will be prompted to confirm theinformation provided to a data collection module prior to providing thedata to the service-provider server 106. Accordingly, the information isnot provided to the service-provider server 106 without approval fromthe user. Moreover, the approval is preferably explicit meaning that anaction needs to be taken by the user to give the approval. Thereby,prompting the user to approve information is connected to a request foraction from the user. It may be required that the user is prompted toapprove any information to be provided to the service-provider server.

The data collection modules may be generated in many different forms anda data collection module for collecting a specific data item, such as anemail address, may be presented in many different ways in terms ofgraphical appearance and in terms of the input means required forinteracting with the data collection module. In principle, the datacollection module does not have to include a visual or graphicalcomponent, the data collection module may instead be audio-based.Accordingly, the data collection module is fully customizable to suit aspecific user and user device in a specific situation.

Moreover, the method may comprise, at the third-party server 102,adapting a visual appearance of a data collection module based on avisual appearance of the service-provider website. A graphical profileof the service provider website may be pre-stored on the third-partyserver 102 so that data collection modules are generated and branded tohave a similar graphical profile, thereby providing a seamlessexperience for the user where the data collection modules arerecognizable as belonging to the visited website. It is also possiblethat the third-party server 102 comprises functionality for scanning awebsite of the service-provider server 106 to determine a visualappearance of the website, and to subsequently generate code forgenerating a data collection module based on the determined visualappearance. The data collection modules can thereby be styled to matchthe graphical profile of a service-provider without any prior knowledgeof the service-provider. The visual appearance of a data collectionmodule may also be further modified by a machine learning or artificialintelligence algorithm.

It should be noted that the main goal when selecting which datacollection module to be used is to make the user complete the datacollection process. Accordingly, a data collection module is notselected based only on a likelihood that the user will provideinformation corresponding to the currently requested data item. Instead,the selection of the data collection module for a given data item isselected based on a likelihood that the user will complete the datacollection process. Thereby, the likelihood that the user completes thedata collection process can be maximized through the selection of datacollection modules for the different data items.

When the user has provided the requested information to the datacollection module, the information is transmitted from the user device104 to the service-provider server 106 as illustrated by FIG. 3D. Themethod further comprises, receiving 210, at the third-party server 102,confirmation that a user of the user device 104 has provided theinformation required by the first data collection module to theservice-provider server 106. Since the third-party server 102 onlyreceives a confirmation that the information is sent from the userdevice 104 to the server-provider server 106, the specific informationentered into or otherwise provided to the data collection module by theuser does not have to be transmitted to the third-party server 102. Thethird-party server 102 may also receive a confirmation from theservice-provider server 106 verifying that the information has beenproperly received by the service-provider server 106 and that theinformation is valid.

It may be preferred that the data item is removed from the set of dataitems to be collected from the user only when the third-party server 102has received confirmation that the information corresponding to aspecific data item has been properly received by the service-providerserver 106.

There may be situations where the information provided to theserver-provider server 106 is not valid, meaning that the data item oritems cannot be removed from the list of data items to be requested fromthe user. One such example is if the user is prompted to provide ausername, and if the provided username is not available, therebyrequiring the user to enter another username. In such a situation, it isnot required that the data collection module requesting a data item suchas the username for the second time is the same as the data collectionmodule used for requesting data item the first time.

Furthermore, the final step of the described method comprisesdetermining 212, in the third-party server 102, based on the receivedconfirmation, if the user has provided the set of data to be collectedfrom the user to the service-provider server 106. If the set of data isdefined as a list of data items, a confirmation that the set of data tobe collected has been provided to the service-provider server 106 maycomprise receiving a confirmation that the last, or only remaining, dataitem on the list of data items has been properly received by theservice-provider server 106. If it can be confirmed that all of the dataitems have been provided, the data collection process is completed, andthe third-party server 102 can end the data collection process. Endingthe data collection process on the third-party server 102 may forexample comprise providing information to the user device 104 and/or tothe service-provider server 106 that all of the data items in the set ofdata to be collected from the user has been confirmed as received by theservice-provider server 106.

It is also possible to use the described functionality of generatingcode for data collection modules on the third-party server in order toprovide modules to the user device which are of an informative nature,i.e. which are not aimed at collecting information from the user butthat instead may be used to guide the user through the data collectionprocess.

According to an embodiment of the method illustrated by the flow chartof FIG. 4, the method may further comprise: if 400 it is determined thatthe user has not provided the set of data to be collected from the userto the service-provider server 106, updating 402 the set of data to becollected from the user; generating, by the third-party server 102, codefor a next data collection module based on the updated set of data to becollected from the user, the next data collection module beingconfigured to collect at least one data item from the updated set ofdata to be collected from the user; and providing 404 the code forgenerating the next data collection module to the user device 104.Accordingly, if the data collection process is not completed, a nextdata collection module is required.

A call from the user device 104 to the service-provider server 106providing the information of a data collection module may at the sametime include a request for a next data collection module from thethird-party server 102.

The code for the next data collection module, and any following requireddata collection modules, may be generated not only based on the staticdata but also based on dynamic data acquired by the third-party server102 during the data collection process, e.g. during user interactionwith previous data collection modules on the user device 104. Thecomputer implemented method may thus comprise, at the third-party server102, generating code for gathering dynamic data that when executed onthe user device 104 gathers dynamic data and sends the gathered dynamicdata to the third-party server 102.

The dynamic data is data that could be expected to change during thedata collection process. Examples of dynamic data include which dataitems remain to be collected, the type of input used by the user for thelatest or any previous data collection module, the data collectionmodule or modules that have been shown to the user, keystroke latency,median latency per input field group for a data collection modulecomprising input fields, tab key usage, enter key usage and any othertype of information describing the behavior of the user. The code for adata collection module may also be generated based only on dynamic datagathered during the data collection session and on the set of data to becollected from the user. Accordingly, the method may also compriseproviding code from the third-party server to the user device forgathering dynamic data from the user device. Such code may be providedat the start of the data collection process so that dynamic data iscontinuously gathered, or it may be a part of the functionality of thedata collection modules.

Thereby, according to one embodiment of the invention, the code for adata collection module is generated, by the third-party server 102,based on a generated data collection module previously provided to theuser device 104. An advantage of the described method is thus that anext data collection module can be adapted based on how a userinteracted with a previous data collection module, i.e. based on dynamicdata. For example, if the user took a longer time than expected tointeract with a previous module, this may be an indication that the userhad difficulties in interacting with the data collection module andanother type of module may be selected as the next module. Thereby, thedata collection process can be continuously adapted based on thedetected user interaction. This also means that the third-party server102 gathers dynamic data throughout the data collection process in orderto optimize the data collection process based on the detected userinteraction with the data collection modules.

Moreover, when a first data collection module is completed, the dataitem or items corresponding to the data collected by the first datacollection module is removed from the set of data to be collected, andan updated set of data is formed. Forming an updated set of data may forexample include reorganizing the list of data items so that the datacollection sequence is changed. Which data item to select next from theupdated set of data can thereby be based on both static and dynamicdata, which in turn results in a sequence of data collection moduleswhich is determined dynamically as a result of various parameters of thedata collection session.

According to one embodiment of the invention, the method may thusfurther comprise repeating the steps of generating code for a datacollection module and providing the code for the data collection moduleto the user device 104 until it is determined at the third-party server102 that the user has provided the set of data to be collected from theuser to the service-provider server 106.

According to one embodiment of the invention, the method may furthercomprise, by the data collection module on the user device 104,presenting a plurality of predefined options on the user device 104 andprompting the user to select one of the plurality of predefined options.The predefined options may for example be based on the staticinformation, on dynamic information and/or on other informationpreviously provided by the user. It should however be noted that this isonly one example of how the user is presented with information, and thatmany different examples are feasible.

According to one embodiment of the invention, the third-party server 102may further comprise a machine learning algorithm configured to modifythe generation of code for each data collection module based on theuser's interaction with a previously generated data collection module.Thereby, the software framework for generating the data collectionmodules can operate based on previously acquired knowledge of userbehavior, and also change the functionality and design based on observedbehavior during the current data collection session. The softwareframework of the third-party server 102 including the machine learningalgorithm can be seen as an artificial intelligence which is usinghistorical data, static data and dynamic data to determine both how eachdata collection module is to be presented to a user, and also in whichorder the required information is collected.

The technical purpose of the machine learning algorithm is to present adata collection module to the user which leads to the highest likelihoodthat the data collection process is completed. If a previous datacollection process was unsuccessful or aborted by the user for a giventype of user and user device, the machine learning algorithm may adaptand change the choice or presentation of data collection modules for auser and user device of the same type. The technical effect of thedescribed machine learning algorithm is that the code defining datacollection modules is generated based on previously stored knowledge ofuser behavior so that the data collection process can be optimized basedon the user and the user device.

Even though the invention has been described with reference to specificexemplifying embodiments thereof, many different alterations,modifications and the like will become apparent for those skilled in theart. Also, it should be noted that parts of the method and system may beomitted, interchanged or arranged in various ways, the method and systemyet being able to perform the functionality of the present invention.

By means of the various embodiments of the current invention, anindividually adapted and user-friendly data collection process isprovided. Throughout the data collection process, the experience isindividually adapted to the user and user device so that for example thesequence in which such data is collected, the design of how data iscollected and the manner in which such data is to be collected isdependent on information available regarding the user and user device,thereby maximizing the likelihood that each user completes the datacollection process.

Additionally, variations to the disclosed embodiments can be understoodand effected by the skilled person in practicing the claimed invention,from a study of the drawings, the disclosure, and the appended claims.In the claims, the word “comprising” does not exclude other elements orsteps, and the indefinite article “a” or “an” does not exclude aplurality. The mere fact that certain measures are recited in mutuallydifferent dependent claims does not indicate that a combination of thesemeasures cannot be used to advantage.

What is claimed is:
 1. A computer implemented method for generating codefor implementing a data collection process between a user device and aservice-provider server, the method comprising: receiving, at athird-party server having at least one processor, and from theservice-provider server, an instruction to begin the data collectionprocess for a user operating on the user device; receiving, at thethird-party server, static data from the user device; determining, atthe third-party server, a required set of data of a number of data itemsto be collected by the service-provider server from the user operatingon the user device; generating, at the third-party server, code forimplementing the data collection process based on the static data;providing, from the third-party server, the code to the user device suchthat the code is executed by the user device to collect the data itemsfrom the required set of data and to transmit the collected data itemsto the service-provider server; repeating the generating of the code andthe providing of the code to the user device until the third-partyserver determines that the user has provided all of the required set ofdata to the service-provider server; receiving, at the third-partyserver, confirmation that the user of the user device has provided thecollected data items to the service-provider server; and determining, atthe third-party server, based on the received confirmation, that theuser has provided the required set of data collected from the user tothe service-provider server.
 2. The computer implemented methodaccording to claim 1, wherein the static data comprises at least one ofnetwork latency state, screen resolution, browser version and deviceversion of the user device during the data collection process.
 3. Thecomputer implemented method according to claim 1, wherein the generatedcode for implementing the data collection process based on the staticdata is modified by a machine learning algorithm using historical datafrom a previous data collection process.
 4. The computer implementedmethod according to claim 3, wherein historical data from a previousdata collection process comprises historical data for a user device withstatic data of at least one type corresponding to static data of thesame type for the user device in the current data collection process. 5.The computer implemented method according to claim 1, further comprisingmodifying the generation of code for a data collection module, using amachine learning algorithm, based on a user interaction with apreviously generated data collection module.
 6. The computer implementedmethod according to claim 1, further comprising modifying the generatedcode for each of the data collection modules based on the user'sinteraction with the previous data collection module.
 7. The computerimplemented method according to claim 1, wherein generating code forimplementing the data collection process based on the static data of theuser device comprises generating code configured to be executed by theuser device to collect the data items from the required set of data. 8.The computer implemented method according to claim 1, wherein the codefor a data collection module is generated based on a generated datacollection module previously provided to the user device.
 9. Thecomputer implemented method according to claim 8, wherein at least afirst data collection module is selected from a library comprising datacollection module templates and where the selection is based on thestatic data.
 10. The computer implemented method according to claim 1,wherein the code for a data collection module is generated based ondynamic data acquired during the data collection process.
 11. Thecomputer implemented method according to claim 10, wherein the dynamicdata comprises type of input used by the user for the latest or anyprevious data collection module or the data collection module or modulesthat have been shown to the user.
 12. The computer implemented methodaccording to claim 10, wherein the dynamic data is selected from thegroup comprising: keystroke latency, median latency per input fieldgroup for a data collection module comprising input fields, tab keyusage and enter key usage.
 13. The computer implemented method accordingto claim 10, wherein the code for a data collection module is generatedbased on dynamic data describing user interaction with a previous datacollection module.
 14. A computer implemented method for generating codefor implementing a data collection process between a user device and aservice-provider server, the method comprising: receiving, at athird-party server having at least one processor, and from theservice-provider server, an instruction to begin the data collectionprocess for a user operating on the user device; receiving, at thethird-party server, static data from the user device, the static datacomprising at least one of network latency state, screen resolution,browser version and device version of the user device during the datacollection process; determining, at the third-party server, a requiredset of data of a number of data items to be collected by theservice-provider server from the user operating on the user device;generating code for implementing the data collection process based onthe static data, wherein the generated code is modified based on amachine learning algorithm using historical data from a previous datacollection process; providing, from the third-party server, the code tothe user device such that the code is executed by the user device tocollect the data items from the required set of data and to transmit thecollected data items to the service-provider server; modifying thegenerated code for each of the data collection modules based on theuser's interaction with the previous data collection module; repeatingthe generating of the code and the providing of the code to the userdevice until the third-party server determines that the user hasprovided all of the required set of data to the service-provider server;receiving, at the third-party server, confirmation that the user of theuser device has provided the collected data items to theservice-provider server; and determining, at the third-party server,based on the received confirmation, that the user has provided therequired set of data collected from the user to the service-providerserver.
 15. The computer implemented method according to claim 14,wherein the code for a data collection module is generated based ondynamic data acquired during the data collection process.
 16. Thecomputer implemented method according to claim 15, wherein the dynamicdata comprises type of input used by the user for the latest or anyprevious data collection module or the data collection module or modulesthat have been shown to the user.
 17. The computer implemented methodaccording to claim 15, wherein the dynamic data is selected from thegroup comprising: keystroke latency, median latency per input fieldgroup for a data collection module comprising input fields, tab keyusage and enter key usage.
 18. The computer implemented method accordingto claim 14, wherein historical data from a previous data collectionprocess comprises historical data for user device having static data ofthe same type as static data of the user device in the current datacollection process.
 19. The computer implemented method according toclaim 14, wherein generating code for implementing the data collectionprocess based on the static data comprises modifying the code based on amachine learning algorithm using historical data from a previous datacollection process.
 20. A system for generating a data collectionprocess in a user device, the system comprising: a third-party serverhaving at least one processor, the processor of the third-party serverbeing configured to: receive, from the service-provider server, aninstruction to begin the data collection process for a user operating onthe user device; receive static data from the user device; determine arequired set of data of a number of data items to be collected by theservice-provider server from the user operating on the user device;generate, code for implementing the data collection process based on thestatic data; provide the code to the user device such that the code isexecuted by the user device to collect the data items from the requiredset of data and to transmit the collected data items to theservice-provider server; repeat the generating of the code and theproviding of the code to the user device until the third-party serverdetermines that the user has provided all of the required set of data tothe service-provider server; receive confirmation that the user of theuser device has provided the collected data items to theservice-provider server; and determine, based on the receivedconfirmation, that the user has provided the required set of datacollected from the user to the service-provider server.